package org.yzh.web.util;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Nick
 * @date 2025/11/10
 * @description 第三方API帮助类
 */
public class OtherApiUtil {

    /**
     * 报警信息添加接口
     */
    private static final String ALARM_ADD_URL = "http://stcrmapi.ran-wei.net/V1/Alarm/Alarm/Add";

    /**
     * 发送报警信息到第三方API
     * @param appId 应用ID
     * @param sim SIM卡号码
     * @param longitude 经度
     * @param latitude 纬度
     * @param type 报警类型 9-碰撞报警, 10-侧翻报警, 11-紧急刹车报警, 12-超速报警, 13-疲劳驾驶报警, 14-偏离路线报警
     * @param address 地址
     * @param time 时间
     * @param note 备注
     * @param mediaList 媒体列表
     * @return 接口响应结果
     *
     * {
     *   "AppId": "10001",
     *   "Sim": "20250911001",
     *   "Longitude": "114.054581",
     *   "Latitude": "22.632819",
     *   "Type": 14,
     *   "Address": "广东省深圳市龙岗区坂田街道荣丰职工大楼中国太平龙璧工业区",
     *   "Time": "2025-10-14 10:28:09",
     *   "Note": "",
     *   "Media": [
     *     {
     *       "Type": 1,
     *       "Url": "http://design.32ak.com/testData/image/h3.jpg"
     *     },
     *     {
     *       "Type": 2,
     *       "Url": "http://design.32ak.com/testData/video/iphone15.mp4"
     *     }
     *   ]
     * }
     *
     * http://stcrmapi.ran-wei.net/V1/Alarm/Alarm/Add  POST  json
     */
    public static String sendAlarmInfo(String id, String appId, String sim, String longitude, String latitude,
                                      int type, String address, String time, String note,
                                      List<Map<String, Object>> mediaList) {
        // 构建请求参数
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("Id", id);
        paramMap.put("AppId", appId);
        paramMap.put("Sim", sim);
        paramMap.put("Longitude", longitude);
        paramMap.put("Latitude", latitude);
        paramMap.put("Type", type);
        paramMap.put("Address", address);
        paramMap.put("Time", time);
        paramMap.put("Note", note);
        paramMap.put("Media", mediaList);

        // 转换为JSON字符串
        String jsonStr = JSONUtil.toJsonStr(paramMap);

        // 发送POST请求
        HttpResponse response = HttpRequest.post(ALARM_ADD_URL)
                .header("Content-Type", "application/json")
                .body(jsonStr)
                .execute();

        // 返回响应结果
        return response.body();
    }

//    /**
//     * 发送报警信息到第三方API（重载方法，使用JSONObject参数）
//     * @param alarmInfo 报警信息JSON对象
//     * @return 接口响应结果
//     */
//    public static String sendAlarmInfo(JSONObject alarmInfo) {
//        // 发送POST请求
//        HttpResponse response = HttpRequest.post(ALARM_ADD_URL)
//                .header("Content-Type", "application/json")
//                .body(alarmInfo.toString())
//                .execute();
//
//        // 返回响应结果
//        return response.body();
//    }
}